package org.uca.dss.curso1011.grupo9;

import org.joda.time.LocalTime;

/**
 * Modelo para trayectos
 * @author manuel
 */

public class Trayecto{

    private int codigoTrayecto;
    private String ciudadOrigen, ciudadDestino;
    private int numeroTramos;
    private LocalTime horaSalida, horaLlegada;

    private Medio medio;

    /**
     * Constructor
     * @param codigoTrayecto
     * @param tren
     * @param ciudadOrigen
     * @param ciudadDestino
     * @param numeroTramos
     * @param horaSalida
     * @param horaLlegada
     */
    Trayecto(int codigoTrayecto, Medio medio, String ciudadOrigen,
             String ciudadDestino, int numeroTramos,
             LocalTime horaSalida, LocalTime horaLlegada)
    {
         this.codigoTrayecto = codigoTrayecto;
         this.ciudadOrigen = ciudadOrigen;
         this.ciudadDestino = ciudadDestino;
         this.numeroTramos = numeroTramos;
         this.horaSalida = horaSalida;
         this.horaLlegada = horaLlegada;
         this.medio = medio;
    }
 
    public static void init() throws Exception {
    }

    /**
     * Calcula el precio total del trayecto
     * @return precio total del trayecto
     */
    public double calcularPrecio(){
        return medio.getPrecio()*numeroTramos;
    }

    /**
     * Devuelve el numero de tramos del trayecto
     * @return número de tramos
     */
    public int getNumeroTramos() {
        return numeroTramos;
    }

    /**
     * Devuelve el numero de asientos del tren
     * @return número de asientos del tren
     */
    public int numeroAsientosTren()
    {
        return medio.getAsientos();
    }

    /**
     * Devuelve la ciudad de origen del trayecto
     * @return ciudad de origen
     */
    public String getCiudadOrigen() {
        return ciudadOrigen;
    }

    /**
     * Devuelve la ciudad de destino del trayecto
     * @return ciudad de destino
     */
    public String getCiudadDestino() {
        return ciudadDestino;
    }

    /**
     * Devuelve la hora de salida
     * @return hora de salida
     */
    public LocalTime getHoraSalida() {
        return horaSalida;
    }

    /**
     * Devuelve la hora de llegada
     * @return hora de llegada
     */
    public LocalTime getHoraLlegada() {
        return horaLlegada;
    }

    /**
     * Devuelve el código del trayecto
     * @return código del trayecto
     */
    public int getCodigoTrayecto()
    {
        return codigoTrayecto;
    }
    
}
